package com.yida.gwj.expend.service;

import com.yida.gwj.expend.domain.GwjMaintenanceFundsBusinessHouse;
import com.yida.gwj.expend.domain.dto.AllocatedAmountListDTO;
import com.yida.gwj.expend.domain.request.AllocatedAmountRequest;

import java.util.List;

/**
 * 业务房屋信息Service接口
 *
 * @author lgp
 * @date 2023-02-20
 */
public interface IGwjMaintenanceFundsBusinessHouseService {
    /**
     * 查询业务房屋信息
     *
     * @param businessHouseId 业务房屋信息主键
     * @return 业务房屋信息
     */
    GwjMaintenanceFundsBusinessHouse selectGwjMaintenanceFundsBusinessHouseByBusinessHouseId(Long businessHouseId);

    /**
     * 查询业务房屋信息列表
     *
     * @param gwjMaintenanceFundsBusinessHouse 业务房屋信息
     * @return 业务房屋信息集合
     */
    List<GwjMaintenanceFundsBusinessHouse> selectGwjMaintenanceFundsBusinessHouseList(GwjMaintenanceFundsBusinessHouse gwjMaintenanceFundsBusinessHouse);

    /**
     * 新增业务房屋信息
     *
     * @param gwjMaintenanceFundsBusinessHouse 业务房屋信息
     * @return 结果
     */
    int insertGwjMaintenanceFundsBusinessHouse(GwjMaintenanceFundsBusinessHouse gwjMaintenanceFundsBusinessHouse);

    /**
     * 修改业务房屋信息
     *
     * @param gwjMaintenanceFundsBusinessHouse 业务房屋信息
     * @return 结果
     */
    int updateGwjMaintenanceFundsBusinessHouse(GwjMaintenanceFundsBusinessHouse gwjMaintenanceFundsBusinessHouse);

    /**
     * 删除业务房屋信息信息
     *
     * @param businessHouseId 业务房屋信息主键
     * @return 结果
     */
    int deleteGwjMaintenanceFundsBusinessHouseByBusinessHouseId(Long businessHouseId);

    /**
     * 删除业务房屋信息信息-通过业务ID
     *
     * @param businessId 业务房屋信息主键
     * @return 结果
     */
    int deleteGwjMaintenanceFundsBusinessHouseByBusinessId(Long businessId);

    /**
     * 查询业务房屋信息-通过业务ID
     *
     * @param businessId 业务房屋信息主键
     * @return 业务房屋信息
     */
    GwjMaintenanceFundsBusinessHouse selectGwjMaintenanceFundsBusinessHouseByBusinessId(Long businessId);

    /**
     * 批量新增业务房屋信息
     *
     * @param maintenanceFundsBusinessHouseList 业务业主信息
     * @return 结果
     */
    int insertBatchGwjMaintenanceFundsBusinessHouse(List<GwjMaintenanceFundsBusinessHouse> maintenanceFundsBusinessHouseList);

    /**
     * 查询业务房屋信息列表
     *
     * @param allocatedAmountRequest 业务房屋信息
     * @return 业务房屋信息集合
     */
    List<AllocatedAmountListDTO> allocatedAmountList(AllocatedAmountRequest allocatedAmountRequest);

    /**
     * 查询未选中房屋
     *
     * @param allocatedAmountRequest 业务房屋信息
     * @return 业务房屋信息集合
     */
    List<GwjMaintenanceFundsBusinessHouse> selectCancelHouseList(AllocatedAmountRequest allocatedAmountRequest);

    /**
     * 查询房屋用途列表
     *
     * @return {@link List}<{@link String}>
     */
    List<String> selectUseTypeList();
}
